網站部屬


Posted by chihyu on 2021-01-25

網站部屬 AWS

大致流程:在 AWS 設定主機 --> 用 CLI 連接主機 --> 在主機架設 LAMP --> 上傳本地資料庫到遠端 --> 上傳本地檔案到遠端

AWS 設定主機

  1. 右上角選擇地區(地區越接近就越快)
  2. 從 service 中找到 EC2,點選進去
  3. 出現 Choose an Amazon Machine Image (AMI) 的步驟畫面,選擇 Ubantu Server,下一步
  4. 出現 Choose an Instance Type,選擇有標示 Free tier eligible 的選項
  5. 一直按 Next 直到 Step 6: Configure Security Group
  6. Configure Security Group 設定 AWS 上的防火牆規則,新增(Add Rule),在 Type 選擇 HTTPHTTPSMYSQL,Source 選擇隨處
    預設:

    | Type | Protocol | Port Rnage | Source    |
    | ---- | -------- | ---------- | --------- |
    | SSH  | TCP      | 22         | 0.0.0.0/0 |
    
    • SSH 代表可以用 ssh 指令連到這個主機
    • Source 0.0.0.0/0 表示允許所有 IP 都可以連到
  7. Review and Launch,檢查沒問題按 Launch
  8. 跳出 Select an existing key pair or create a new key pair 的框框,選擇 Create a new key pair,輸入 key pair 的名稱(自訂),按 Download Key Pair,下載存檔(等下會用到)
  9. Launch Instances

CLI 連接主機

  1. 打開 CLI
  2. 改變 Key pair 的權限:
    chmod 400 Key Pair 存檔的位置/ Key Pair 的名稱
    ex. chmod 400 ./Downloads/demo_key.pem
  3. 輸入 Key:
    ssh -i Key Pair 存檔的位置/ Key Pair 的名稱 ubantu@{ Public DNS(IPv4) } 或 { IPv4 Public IP } (AWS 上產生的)
    ex. ssh -i ./Downloads/demo_key.pem ubantu@ec2-0-00-000-000.compute-1.amazonaws.com
  4. 出現 Welcome to Ubantu 就成功進入主機了
    • 輸入 top:出現主機資訊 (按 "q" 離開)

架設 LAMP

LAMP - Linux、Apache、MySQL、PHP

  1. 更新 Ubantu:
    sudo apt update && sudo apt upgrade && apt dist-upgrade

    • sudo:以管理員身分執行
    • apt:在 Ubantu 上管理套件的程式
  2. 安裝 tasksel 這個軟體:
    sudo apt install tasksel

  3. 用 tasksel 安裝 LAMP
    sudo tasksel install lamp-server
  4. 如果安裝好就可以直接在網址列輸入 自己的 IP,跳出 Ubuntu Default Page 就代表 Apache server 架設好了

  5. 安裝 phpMyAdmin
    sudo apt install phpmyadmin

    • 出現勾選框[ ] 按空白鍵會變[ * ] ,就會選到了
    • 出現 ok 選項,一直按下,再按右
    • 輸入 phpmyadmin 的密碼 (管理 phpmyadimin 用的)
  6. 登入 MySQL:
    sudo mysql -u root mysql
  7. 更改 root 的登入方式:
    UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'root'; (讓 root 可以用密碼的方式登入)
  8. 接著輸入 FLUSH PRIVILEGES;exit; 離開
  9. 設定 root 的密碼
    sudo mysql_secure_installation
    • 選擇 password 的要求,選 0 最簡單
    • 輸入密碼(注意畫面不會顯示)
    • 回答 yes、no 問題
  10. 進入 phpMyAdmin
    • 在網址列輸入 自己的 IP/phpmyadmin
      ex. 0.00.000.000/phpmyadmin
    • 使用者名稱:root 、密碼:剛剛設定的密碼
  11. 把 bind-address 註解掉
    • sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 進入 vim
    • 找到 bind-address,加上 # 註解掉
    • sudo service mysql restart 重跑一次 mysql

上傳本地資料庫到遠端

  1. 到 localhost 的 phpmyadmin 選要上傳的資料庫
  2. "匯出",匯出方式:快速、格式:SQL(匯出後會有檔案下載下來)
  3. 到遠端的 phpmyadmin 建立新的資料庫
  4. "匯入",選擇剛剛匯出的檔案
  5. 執行 -> 成功時,就可以看到剛剛本地的資料庫出現

上傳本地檔案到遠端

  1. 打開 filezilla
  2. 開啟站台管理員
  3. 按 "新增站台"
  4. 設定
    • 協定:SFTP
    • 主機:自己遠端的 IP
    • 登入形式:金鑰檔案
    • 使用者:ubuntu
    • 金鑰檔案:之前下載過的那個檔案
  5. 按 "連線"
  6. 進入 /var/www/html/
  7. 把要上傳的檔案放入 html 的資料夾
  8. 在網址輸入 IP/檔案名稱 就會出現檔案了
    ex. 0.00.000.000/index.php
    註:這裡把 IP 換成已經設定好的域名也能成功出現檔案

補充:

  • telnet IP + port:確認 port 有沒有開
  • 預設只有 localhost 連到 mysql,要讓所有地方都連得到 mysql 的設定:
    1. 在 phpmyadmin 選使用者權限
    2. 選擇 root 按編輯權限
    3. 進入後按登入資訊
    4. 主機名稱選擇任何主機
    5. 輸入密碼
    6. 執行 -> 成功時,使用者帳號就會出現主機名稱顯示 %

#Web #Deploy #aws #ec2 #LAMP







Related Posts

淺談 ORM

淺談 ORM

Auto Generate Insert Script without SQL Manager

Auto Generate Insert Script without SQL Manager

2356. Number of Unique Subjects Taught by Each Teacher

2356. Number of Unique Subjects Taught by Each Teacher


Comments